﻿/**
 * Create in 2012-2-6.
 */
package kit4j.view.cs.awt.image.drawer;

import java.awt.Image;
import java.awt.Insets;

/**
 * 字符串绘制器接口。该接口的实现类应该确保{@link kit4j.view.cs.awt.image.drawer.IDrawer#draw(java.awt.Image)
 * draw()} 方法中会在指定的图像上绘制{@link #getString() getString()}方法返回的字符串值。
 * 
 * @author MiniKnife
 * 
 */
public interface IStringDrawer extends IDrawer {

	/**
	 * 返回字体的最小尺寸。
	 * 
	 * @return 字体的最小尺寸
	 */
	float getMinFontSize();

	/**
	 * 设置字体的最小尺寸。
	 * 
	 * @param fontSize
	 *            字体尺寸
	 */
	void setMinFontSize(float fontSize);

	/**
	 * 返回字体的最大尺寸。
	 * 
	 * @return 字体的最大尺寸
	 */
	float getMaxFontSize();

	/**
	 * 设置字体的最大尺寸。
	 * 
	 * @param fontSize
	 *            字体尺寸
	 */
	void setMaxFontSize(float fontSize);

	/**
	 * 返回字符串与图像边界的间距。
	 * 
	 * @return 间距
	 */
	Insets getMargin();

	/**
	 * 设置字符串与图像边界的间距。
	 * 
	 * @param margin
	 *            间距
	 */
	void setMargin(Insets margin);

	/**
	 * 返回要绘制的字符串。
	 * 
	 * @return 要绘制的字符串
	 */
	String getString();

	/**
	 * 设置要绘制的字符串。
	 * 
	 * @param str
	 *            要绘制的字符串
	 */
	void setString(String str);

	/**
	 * 在指定的图像上绘制指定的字符串。
	 * 
	 * @param img
	 *            要进行绘制的图像
	 * @param str
	 *            要绘制的字符串
	 * @return 绘制完成后的Image对象
	 */
	Image draw(Image img, String str);
}
